export default {
	common: {
		baseUrl: 'http://192.168.1.43',
		// baseUrl: 'http://192.168.1.36',
		basePort: {
			port1: 20020, //eladminapi
			port2: 20090
		},
		data: {},
		// 不在这里设置 token，因为它来自本地缓存  
		header: {
			// Authorization 将在 request 方法中设置  
			// "Content-Type": "application/json" // 根据需要选择正确的内容类型  
		},
		method: "GET",
		dataType: "json"
	},
	request(options = {}, portNumber = 1) {
		// 从本地缓存中获取 token  
		const token = uni.getStorageSync('token'); // 假设你保存的 token key 是 'token'  

		if (portNumber === 1) {
			options.url = this.common.baseUrl + ':' + this.common.basePort['port' + portNumber] + '/eladminapi' +
				options.url;
		} else {
			options.url = this.common.baseUrl + ':' + this.common.basePort['port' + portNumber] + options.url;
		}

		options.data = options.data || this.common.data;

		// 设置 Authorization header，如果 token 存在  
		options.header = {
			...this.common.header,
			...(token ? {
				Authorization: `Bearer ${token}`
			} : {}), // 假设你的 token 前面需要加 "Bearer " 前缀  
			...options.header
		}; // 合并 headers  

		options.method = options.method || this.common.method;
		options.dataType = options.dataType || this.common.dataType;
		options.method = options.method.toUpperCase(); // 确保方法名大写  

		return new Promise((resolve, reject) => {
			uni.request({
				...options,
				success: (result) => {
					if (result.statusCode !== 200) {
						return reject(new Error(
							`Request failed with status code ${result.statusCode}`));
					}

					let data = result.data;
					if (result.data && result.data.data) {
						data = result.data.data; // 如果响应中有嵌套的数据属性，则提取它  
					}
					resolve(data);
				},
				fail: (error) => {
					reject(new Error(`Request failed: ${error.message}`));
				}
			});
		});
	}
};